const mongoose = require('mongoose');
const md5 = require('md5')
const userSchema = mongoose.Schema({
  userId: {
    type:String,
    default: md5(Date.now())
  }, //用户ID，自增长
  userName: {
    type: String,
    index:{unique:true},
    unique: true
  }, //用户名称
  name:String, // 真实姓名
  userPwd: String, //用户密码，md5加密
  userEmail: String, //用户邮箱
  emailConfirmed: {
    //邮箱验证状态：0 未验证 1 已验证
    type: Number,
    default: 0,
  },
  avatar: {
    type: String,
    default:
      'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-5735cfba-a37e-4d2b-a79c-2e9e3fbaa82e/48c9d3a0-27ca-4802-b86f-65d925a8b268.png',
  },
  mobile: String, //手机号
  mobileConfirmed: {
    // 手机号验证状态：0 未验证 1 已验
    type: Number,
    default: 0,
  },
  sex: {
    type:Number,
    default:0
  }, //性别 0:男  1：女 默认为1
  deptId: [], //部门
  state: {
    type: Number,
    default: 1,
  }, // 1: 正常 2: 封禁 3: 注销
  role: {
    type: Number,
    default: 1,
  }, // 用户角色 0：系统管理员  1： 普通用户
  roleList: [], //系统角色
  wxUnionid: {
    //微信unionid
    type: String,
    default: '',
  },
  wxOpenid: {
    //微信各个平台openid
    appPlus: {
      //app平台微信openid
      type: String,
      default: '',
    },
    mpWeixin: {
      //微信小程序平台openid
      type: String,
      default: '',
    },
  },
  token:{
    type:String,
    default: ""
  },
  createTime: {
    type: Date,
    default: Date.now(),
  }, //创建时间
  lastUpdateTime: {
    type: Date,
    default: Date.now(),
  }, //更新时间
  lastLoginTime: {
    type: Date,
    default: Date.now(),
  }, //更新时间
  lastLoginIp: {
    type: String,
  },
  lastLoginPlace: {
    type: String,
  },
  registerPlace: {
    type: String,
  },
  registerIp: {
    type: String,
  },
  remark: String,
});

module.exports = mongoose.model('users', userSchema, 'users');
